using Medical.Domain.Enum;
using System;
using System.Collections.Generic;
using static Medical.Domain.Enum.DepartmentEnum;

namespace Medical.Api.Read.Dto.WmsDto.WmsOutDto
{
    public class WmsOutQueryDto
    {
        public int PageIndex { get; set; } = 1;
        public int PageSize { get; set; } = 10;
        public DateTime? StartTime { get; set; }
        public DateTime? EndTime { get; set; }
        public int? AuditState { get; set; }
    }

    public class WmsOutPageDto
    {
        public int Id { get; set; }
        public string OutCode { get; set; }
        public WarehouseEnum OutWarehouse { get; set; }
        public string OutWarehouseName { get; set; }
        public ApplyingUnitEnum ApplyingUnit { get; set; }
        public string ApplyingUnitName { get; set; }
        public OutCauseEnum OutReason { get; set; }
        public string OutReasonName { get; set; }
        public ApprovalStateEnum AuditState { get; set; }
        public string AuditStateName { get; set; }
        public string AuditName { get; set; }
        public DateTime? AuditDate { get; set; }
        public DateTime CreateTime { get; set; }
    }

    public class WmsOutDetailReadDto
    {
        public int Id { get; set; }
        public string OutCode { get; set; }
        public WarehouseEnum OutWarehouse { get; set; }
        public string OutWarehouseName { get; set; }
        public ApplyingUnitEnum ApplyingUnit { get; set; }
        public string ApplyingUnitName { get; set; }
        public OutCauseEnum OutReason { get; set; }
        public string OutReasonName { get; set; }
        public ApprovalStateEnum AuditState { get; set; }
        public string AuditStateName { get; set; }
        public string AuditName { get; set; }
        public DateTime? AuditDate { get; set; }
        public DateTime CreateTime { get; set; }
        public List<WmsOutDetailItemReadDto> Details { get; set; }
    }

    public class WmsOutDetailItemReadDto
    {
        public int Id { get; set; }
        public int MaterialId { get; set; }
        public MaterialTypeEnum MaterialType { get; set; }
        public string MaterialTypeNmae { get; set; }
        public string MaterialCode { get; set; }
        public string MaterialName { get; set; }
        public int OutNum { get; set; }
    }
}